package com.docmgmt.mvp.dto.ragflow;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * RAGFlow文档分块信息
 *
 * @author Dora
 */
@Data
public class RAGFlowChunk {
    /**
     * 分块ID
     */
    private String id;

    /**
     * 分块文本内容
     */
    private String content;

    /**
     * 文档ID（RAGFlow的document_id）
     */
    @JsonProperty("document_id")
    private String documentId;

    /**
     * 文档名称
     */
    @JsonProperty("document_name")
    private String documentName;

    /**
     * 数据集ID（对应知识库ID）
     */
    @JsonProperty("dataset_id")
    private String datasetId;

    /**
     * 图片ID（如果该chunk包含图片）
     */
    @JsonProperty("image_id")
    private String imageId;

    /**
     * 位置信息（二维数组，每个元素是一个位置数组）
     * RAGFlow 实际返回格式：[[2,1,1,1,1]]
     */
    private List<List<Integer>> positions;

    /**
     * 文档URL（如果有）
     */
    private String url;

    /**
     * 综合相似度分数（0.0-1.0）
     */
    private Double similarity;

    /**
     * 向量相似度分数
     */
    @JsonProperty("vector_similarity")
    private Double vectorSimilarity;

    /**
     * 关键词相似度分数
     */
    @JsonProperty("term_similarity")
    private Double termSimilarity;

    /**
     * 文档类型（pdf/docx/txt等）
     */
    @JsonProperty("doc_type")
    private String docType;
}
